#!/usr/bin/env node

const fs = require('fs').promises;
const path = require('path');

// 检查命令行参数
if (process.argv.length <= 2) {
  console.error('错误：缺少文件或目录名');
  process.exit(1);
}

// 异步删除文件或目录的函数
async function deletePath(path) {
  try {
    const stats = await fs.stat(path);
    if (stats.isDirectory()) {
      // 如果是目录，则递归删除
      const files = await fs.readdir(path);
      for (const file of files) {
        const currentPath = path + '/' + file;
        await deletePath(currentPath);
      }
      await fs.rmdir(path);
    } else {
      // 如果是文件，则直接删除
      await fs.unlink(path);
    }
  } catch (error) {
    if (error.code === 'ENOENT') {
      console.error(`错误：找不到指定的文件或目录 ${path}`);
    } else {
      console.error(`错误：删除 ${path} 时发生错误: ${error.message}`);
    }
    process.exit(1);
  }
}

// 遍历命令行参数并删除
async function main() {
  const args = process.argv.slice(2);
  for (const arg of args) {
    await deletePath(arg);
    console.log(`已删除：${arg}`);
  }
}

main();